/*
 * fwwk.h
 *
 * Copyright (C) 2008, 2009
 *
 * Lukasz Bieniasz-Krzywiec
 * Dariusz Leniowski
 */

#ifndef FWWK_H_
#define FWWK_H_

#include "../config.h"

class fwwk {
public:
  fwwk() {}
  virtual ~fwwk() {}

  /*
   * Oblicz wage na podstawie numerow graczy a i b
   * Argumenty:
   * - a - gracz pierwszy
   * - b - gracz pierwszy
   * Zalozenia:
   * - a, b \in [0,N-1]
   * - funkcja oblicz jest symetryczna
   * Wynik:
   * - liczba rzeczywista z przedzialu [0,1]
   */
  virtual real oblicz(int a, int b) = 0;
};

class fwwk_min : public fwwk {
public:
  fwwk_min();
  ~fwwk_min();

  real oblicz(int, int);
};

class fwwk_max : public fwwk {
public:
  fwwk_max();
  ~fwwk_max();

  real oblicz(int, int);
};

class fwwk_mean : public fwwk {
public:
  fwwk_mean();
  ~fwwk_mean();

  real oblicz(int, int);
};

#endif /* FWWK_H_ */
